package tec;

class TestPassagerStandard {
       
    void lancer() {
	int nbTest = 0;
	
	System.out.print(getClass().getName());
	
	System.out.print('.'); nbTest++;
	testFaussaire();
	
	System.out.print('.'); nbTest++;
	testConstructeur();
	
	System.out.print('.'); nbTest++;
	testAccepterPlace();
	
	System.out.print('.'); nbTest++;
	testArret();
	
	System.out.print('.'); nbTest++;
	testMonterDans();
	
	System.out.println("OK (" + nbTest + ")");
    }
    
    void testConstructeur(){
	Passager  p = new PassagerStandard("Nom",0);
	assert "Nom"==p.nom();
	assert p.estDehors();
	assert !p.estAssis();
	assert !p.estDebout();
	
    }
    
    
    void testAccepterPlace(){
	Passager p = new PassagerStandard("Nom",4);
	p.accepterPlaceAssise();
	assert p.estAssis();
	p.accepterPlaceDebout();
	assert p.estDebout();
    	p.accepterSortie();
	assert p.estDehors();
    }
    
    void testArret() {
	Passager p = new PassagerStandard("yyy", 5);
	FauxBus f = new FauxBus(3,5);
	
	// test interaction cas numeroArret < destination
	p.nouvelArret(f, 1);
	assert 0 == f.messages.size() ;
	
	// test interaction cas numeroArret >= destination
	p.nouvelArret(f, 5);
	assert "demanderSortie" == f.messages.getLast() ;
    }
    void testMonterDans()
    {
	Passager p = new PassagerStandard("zzz",4);
	FauxBus f = new FauxBus(2,4);
	f.status = FauxBus.VIDE;
	p.monterDans(f);
	assert "demanderPlaceAssise" == f.messages.getLast();
	
	f.status = FauxBus.DEBOUT;
	p.monterDans(f);
	assert "demanderPlaceDebout" == f.messages.getLast();
	
    }
    
    void testFaussaire() {
	FauxBus f = new FauxBus(1,2);
	f.status = FauxBus.ASSIS;
	assert 0 == f.messages.size();
	assert f.aPlaceAssise();
	
	f.status = FauxBus.DEBOUT;
	assert f.aPlaceDebout();
	
	f.status = FauxBus.VIDE;
	assert f.aPlaceDebout();
	assert f.aPlaceAssise();
	
	f.status = FauxBus.PLEIN;
	assert !f.aPlaceDebout();
	assert !f.aPlaceAssise();
	
	f.demanderChangerEnDebout(null);
	assert "demanderChangerEnDebout" == f.messages.getLast();
	f.demanderChangerEnAssis(null);
	assert "demanderChangerEnAssis" == f.messages.getLast();
	f.demanderSortie(null);
	assert "demanderSortie" == f.messages.getLast();
	f.allerArretSuivant();
	assert "allerArretSuivant" == f.messages.getLast();
	f.demanderPlaceAssise(null);
	assert "demanderPlaceAssise" == f.messages.getLast();
	f.demanderPlaceDebout(null);
	assert "demanderPlaceDebout" == f.messages.getLast();
    }
 
}
